package chixing.day07.inherited;

public class Product {
    private int proNo;
    private String proName;
    private float proPrice;

    public Product(){}

    public Product(int proNo, String proName, float proPrice) {
        this.proNo = proNo;
        this.proName = proName;
        this.proPrice = proPrice;
    }

    /**
     * 比较两个product两个对象是否一致
     * 比较的是内容的值
     * 业务中界定：若 商品id，名称，价格，都相同  则是同一个商品，否则不是同一个商品
     * @param another 另一个商品
     * @return 返回两个product对象是不同一个对象
     */
    @Override
    public boolean equals(Object another) {
        //如果another为空则直接返回false
        if (another == null)
            return false;
        //要比较的两个类型必须是同一个包下的同一个类型，获取地址值了
        if (!this.getClass().getName().equals(another.getClass().getName()))
            return false;
        //如果两个变量为同一个就不用比较了直接返回true
        if (this == another)
            return true;
        //因为变量another的类型是Object类所以要先进行强制转换
        Product product = (Product)another;
        //比较他们的所有属性是否相等若都形同则返回true   引用数据类型用equal比较，基本数据类型用==比较
        if (this.proName.equals(product.proName) && this.proPrice == product.proPrice && this.proNo == product.proNo )
            return true;
        return false;
    }

    public int getProNo() {
        return proNo;
    }

    public void setProNo(int proNo) {
        this.proNo = proNo;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public float getProPrice() {
        return proPrice;
    }

    public void setProPrice(float proPrice) {
        this.proPrice = proPrice;
    }

    @Override
    public String toString() {
        return "Product{" +
                "proNo=" + proNo +
                ", proName='" + proName + '\'' +
                ", proPrice=" + proPrice +
                '}';
    }
}
